【iOSDC Japan 2023 レポート】「SwiftUIに適した新アーキテクチャの導入に挑む」を聞いてきた。
はじめに
年に一度のiOSエンジニアの為のお祭り iOSDC Japan 2023に参加しています。
せっかくなので、参加したセッションのレポートを書きたいと思います。
SwiftUIに適した新アーキテクチャの導入に挑む
登壇者
- tinpayさん
概要
ChatworkのiOSアプリは2011年にリリースされ、12年間で様々な技術変更や新機能の追加を行ってきました。しかし、長期間の開発では技術的な負債が蓄積されます。そこで昨年、新しいアーキテクチャを導入し、負債の解消に取り組みました。
新アーキテクチャを社内では「SVVS(Store, View, ViewStateの頭文字)」と呼んでおり、弊社の技術顧問であるkoherさんとの毎週の議論や、技術合宿を経て生まれました。
SVVSはSingle Source of Truthを考慮し、シンプルでオーソドックスな構成を実現しています。特にSwiftUIとの相性が良く、学習コストも低く、サードパーティのライブラリやフレームワークに依存しない点が魅力です。
このセッションでは、「SVVS」の開発秘話や現在のUIKit / MVVMからの導入計画について分かりやすく説明します。
引用: fortee
資料
感想
SwiftUIではよく最適なアーキテクチャは何だ?と議論されますが、今回はSVVSという新しいアーキテクチャを導入して試して行ったお話でした。
SVVSは、
- Store
- 画面間で共有される状態。取得・更新するメソッドを持ち、単一情報源になる
- View
- SwiftUIで実装された画面。必ずViewStateを持っている
- ViewState
- プレセンテーションロジックでViewの状態を管理。Viewのアクションをメソッドとして実装
※画面遷移はUIKitを使用
SVVSの導入することで、コードが減り、責務がわかりやすくなるという利点を話されていました。また、ライブラリに依存しておらず、習得コストも低く導入しやすい。
実際に、サンプルプロジェクトがあるので見てみると良さそうです。
まだ始まったばかりのアーキテクチャで改善箇所も出てくるかもしれないが、これからこのアーキテクチャで進めていかれるようでした。
とても試したくなるアーキテクチャのお話でした。ありがとうございました。
おわりに
これにて僕のiOSDC Japan 2023は閉幕です。
iOSDC 2023 レポート関連
Day0
- 「タクシーアプリの多言語対応・ローカライズにおける課題と解決策」を聞いてきた。
- 「Appleにおけるプライバシーの全容を把握する」を聞いてきた。
- 「SwiftUIの進化についていくためにやったこと」を聞いてきた。
- 「SharePlayの歴史と進化 - そしてvisionOSへ」を聞いてきた。
- 「UIKit ベースの Custom UIContentConfiguration API を用いた複雑なカスタムセルの作り方」を聞いてきた。
Day1
- 「TextKit 2 時代の iOS のキーボードとテキスト入力と表示のすべて」を聞いてきた。
- 「PushToTalkで作るトランシーバー」を聞いてきた。
- 「6年間運用したiOSアプリのリアーキテクトについて具体的に解説」を聞いてきた。
- 「Mastering SwiftSyntax」を聞いてきた。
- 「配信アプリのためのリアルタイムプッシュ通知ぼかしの夢 〜低負荷で高速なプライバシー保護を目指して」を聞いてきた。
- 「macOSで自分のカメラを作ってみよう – Core Media IO Extension」を聞いてきた。
- 基礎から理解する!来年春までに対応すべきプライバシーの変更点
- 「UIのブラックボックスを探る」を聞いてきた。
- 「なぜ、弊社はFlutterを捨ててネイティブ化(Swift / Kotlin)にコミットしたのか」を聞いてきた。
- 「正規表現を”微分”する!?爆速で自作できる正規表現エンジン」を聞いてきた。
- 「一般的な通信でも使えるバックグランドURLSessionの活用方法」を聞いてきた。
- 「SwiftUIでの非同期処理データの状態管理を考える」を聞いてきた。
Day2
- 「Human Interface Guidelinesから読み解く標準アプリの素晴らしい体験」を聞いてきた。
- 「Swiftでりんごを育ててみた」を聞いてきた。
- 「全人類iOSアプリエンジニア化計画〜ピクシブ編〜」を聞いてきた。
- 「複雑さに立ち向かうためのコードリーディング入門」を聞いてきた。
- 「作って学ぶBluetoothの基本攻略〜スマートキーアプリを作ってみよう〜」を聞いてきた。
- 「iOSではじめるフォトグラメトリ」を聞いてきた。
- 「iOSのKeyboard Extensionで日本語入力できるキーボードアプリを作ろう!」を聞いてきた。
- 「Xcode Previewを気軽に利用するためのDI戦略」を聞いてきた。